<?php

/**
 * Service fonctionnel permettant de manipuler les données liée aux plaintes
 *
 * @author Alain
 */
require_once 'config.php';
require_once 'SC/SCplainte.php';


class SFplainte {
    
    /**
     * Methode permettant d'ajouter une plainte
     * @param Plainte $plainte
     * @return Plainte une plainte ajoutée 
     */
    public function ajouterPlainte(Plainte $plainte){
        
        $unePlainteAjoutee = null;
        $SCplainte = new SCplainte;
        // on vérifie l'inexistance de la plainte
        if($SCplainte->lister($plainte)==null)
            $unePlainteAjoutee = $SCplainte->ajouter($plainte);
            
        
        return $unePlainteAjoutee;
    }
    
    public function modifierPlainte(Plainte $plainte){
        
        $unePlainteModifier = null;
        $SCplainte = new SCplainte;
        // on vérifie l'existance de la plainte
        if($SCplainte->lister(new Plainte($plainte->getId(),null,null,null,null,null))!=null)
            $unePlainteModifier = $SCplainte->modifier($plainte);
        
        return $unePlainteModifier;
    }
    
     /**
     * Liste une/des plaintes selon l'objet plainte
     * @return Array de Plaintes
     */
    public function listerPlaintes(Plainte $plainte){
        
        $SCplainte = new SCplainte;
        $plaintesTrouvee = $SCplainte->lister($plainte);

        return $plaintesTrouvee;
        
    }
    
    /**
     * Liste toute les plaintes
     * @return Array de Plaintes
     */
    public function listerTouteLesPlaintes(){
        
        $SCplainte = new SCplainte;
        
        return $SCplainte->lister(new Plainte(null, null, null, null, null, null));
        
    }
    
    /**
     * Methode permettant de lier une personne à une plainte
     * @param Plainte $plainte
     * @param Personne $personne
     * @return Plainte une plainte modifiée 
     */
    public function ajouterUnePersonneAPlainte(Plainte $plainte, Personne $personne){
        
        $SCplainte = new SCplainte;
        
        return $SCplainte->modifier(new Plainte($plainte->getId(), $plainte->getDate(), $plainte->getDescription(),
                $plainte->getStatut(), $plainte->getAnimal_id(), $personne->getId()));
        
    }

     /** 
     * Methode permettant de lier un animal à une plainte
     * @param Plainte $plainte
     * @param Personne $personne
     * @return Plainte une plainte modifiée 
     */
    public function ajouterUnAnimalAPlainte(Plainte $plainte, Animal $animal){
        
        $SCplainte = new SCplainte;
        
        return $SCplainte->modifier(new Plainte($plainte->getId(), $plainte->getDate(), $plainte->getDescription(),
                $plainte->getStatut(), $animal->getId(), $plainte->getPersonne_id()));
        
    }
    /**
     * Methode permettant de lister les plaintes entre deux dates
     * @param String $dateDebut
     * @param String $dateFin
     * @return Array Plainte 
     */
    public function listerPlainteSelonDate($dateDebut, $dateFin){
        

           $SCplainte = new SCplainte();
           return $SCplainte->listerSelonDate($dateDebut, $dateFin);
           
    }
    
   
}

?>
